package com.gupaoedu.task.pattern.template.course;

/**
 * @author djl
 * @Title: NetWorkCourse
 * @Description: TODO
 * @date 2019/3/31
 */
public abstract  class NetWorkCourse {
    protected  final void  createCourse(){
        //1.发布预习资料
        this.postPreResourse();

        //2.制作PPt课件
        this.createPPT();

        //3.在线直播
        this.liveVideo();

        //4.提交笔记
        this.postNote();

        //5.提交源码
        this.postSource();

        //6.布置作业，有的有作业  有的没作业
        //有作业的检查作业 没有作业完成
         if(needHomework()){
             checkHomework();
         }
    }
    abstract  void  checkHomework();
    //钩子方法
    protected  boolean needHomework(){
        return  false;
   }
    final void postPreResourse(){
        System.out.println("分发预习资料");
    }

    final void createPPT(){
        System.out.println("创建备课PPT");
    }

    final void  liveVideo(){
        System.out.println("直播");
    }

    final  void  postNote(){
        System.out.println("提交课件、笔记");
    }


    final  void postSource(){
        System.out.println("提交源码");
    }
}
